/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package persistencia;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

/**
 *
 * @author demian
 */
public class ArchivoTextoUsuarioDAO implements IUsuarioDAO {
    private File archivo;
    private  BufferedReader br = null;
    public static String CABECERA = "[usuarios]";

    public ArchivoTextoUsuarioDAO(File archivo) {
        this.archivo = archivo;
    }

    public char[] obtenerContrasena(String usuario) {
        try {
            br = new BufferedReader(new FileReader(archivo));
            
            String line = proximaLineaValida(); 
            if(!line.equals(CABECERA)) {
                return null;
            }

            line = proximaLineaValida(); 
            String[] splittedLine = line.split(":");
            if (splittedLine.length <= 1) {
                return null;
            }

            if(!usuario.equalsIgnoreCase(splittedLine[0])) {
                return null;
            }

            return splittedLine[1].toCharArray();            
        } catch (FileNotFoundException ex) {
            return null;
        } catch(IOException ex) {
            return null;
        } finally {
            try {
                if(br != null) br.close();
            } catch (IOException ex) {}
        }
    }

    public void guardarContrasena(String usuario, char[] contrasena) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    private String proximaLineaValida() throws IOException {
            String line = null;
            String tmpLine = null;
            while((line = br.readLine()) != null) {
                tmpLine = line.trim();
                if(!tmpLine.isEmpty() && !tmpLine.startsWith("//")) {
                    break;
                }
            }
            
            return line;
    }
}
